package com.zmn.oms.services.impl.work.masterwork;

import com.zmn.cube.common.utils.StringUtil;
import com.zmn.oms.common.utils.EmojiUtil;
import com.zmn.oms.model.entity.work.OrderWork;
import com.zmn.oms.persistence.interfaces.work.OrderWorkDao;
import com.zmn.oms.services.interfaces.work.masterwork.MasterWorkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 类描述：工程师工单实现类
 *
 * @author heciqi
 * @date 2018/11/02 20:59
 */
@Service
public class MasterWorkServiceImpl implements MasterWorkService {

	@Autowired
	OrderWorkDao orderWorkDao;

	/**
	 * 工程师接单
	 *
	 * @param orderWork
	 * @return 影响行数
	 */
	@Override
	public Integer updateMasterTake(OrderWork orderWork) {
		return orderWorkDao.updateMasterTake(orderWork);
	}

	/**
	 * 工程师出发
	 * @param orderWork
	 * @return
	 */
	@Override
	public Integer updateMasterLeave(OrderWork orderWork) {
		return orderWorkDao.updateMasterLeave(orderWork);
	}

	/**
	 * 工程师上门
	 *
	 * @param orderWork
	 * @return 影响行数
	 */
	@Override
	public Integer updateMasterVisit(OrderWork orderWork) {
		return orderWorkDao.updateMasterVisit(orderWork);
	}

	/**
	 * 更新工程师上门时间
	 *
	 * @param orderWork
	 * @return 影响行数
	 */
	@Override
	public Integer updateMasterVisitTime(OrderWork orderWork) {
		return orderWorkDao.updateMasterVisitTime(orderWork);
	}

	/**
	 * 标记为使用配件
	 *
	 * @param orderWork
	 * @return 影响行数
	 */
	@Override
	public Integer updateUsePart(OrderWork orderWork) {
		return orderWorkDao.updateUsePart(orderWork);
	}

	/**
	 * 修改纸质保单号
	 *
	 * @param orderWork 工单
	 * @return 影响行数
	 */
	@Override
	public Integer updateManualCode(OrderWork orderWork) {
		return orderWorkDao.updateManualCode(orderWork);
	}

	/**
	 * 修改工程师备注
	 * @param orderWork 工单
	 * @return 影响行数
	 */
	@Override
	public Integer updateMasterRemark(OrderWork orderWork) {
		if (StringUtil.isNotBlank(orderWork.getMasterRemark())){
			orderWork.setMasterRemark(EmojiUtil.filterEmoji(orderWork.getMasterRemark()));
		}
		if (StringUtil.isNotBlank(orderWork.getCurrentRemark())){
			orderWork.setCurrentRemark(EmojiUtil.filterEmoji(orderWork.getCurrentRemark()));
		}
		return orderWorkDao.updateMasterRemark(orderWork);
	}

	/**
	 * 更新跟单状态
	 * @param orderWork
	 * @return 影响行数
	 */
	@Override
	public Integer updateTrackStatus(OrderWork orderWork) {
		return orderWorkDao.updateTrackStatus(orderWork);
	}

    /**
     * 工作服务完成
     *
     * @param orderWork 工单
     * @return 影响行数
     */
    @Override
    public Integer updateServiceComplete(OrderWork orderWork) {
        return orderWorkDao.updateServiceComplete(orderWork);
    }

	/**
	 * 工作完成
	 *
	 * @param orderWork 工单
	 * @return 影响行数
	 */
	@Override
	public Integer updateComplete(OrderWork orderWork) {
		return orderWorkDao.updateComplete(orderWork);
	}

	/**
	 * 记录联系用户时间
	 *
	 * @param orderWork 工单
	 * @return 影响行数
	 */
	@Override
	public Integer updateContactUser(OrderWork orderWork) {
		return orderWorkDao.updateContactUser(orderWork);
	}

	/**
	 * 修改保留配件申请
	 * @param orderWork
	 */
	@Override
	public Integer updatePartRetainByKey(OrderWork orderWork) {
		return orderWorkDao.updatePartRetainByKey(orderWork);
	}
}
